A Redundant Array of Independent Disks (RAID) combines a plurality of physical hard disk drives into a logical drive for purposes of reliability, capacity, or performance. Thus, instead of multiple physical hard disk drives, an operating system sees the single logical drive. As is well known to those skilled in the art, there are many standard methods referred to as RAID levels for distributing data across the physical hard disk drives in a RAID system.
For example, in a level 0 RAID system the data is striped across a physical array of hard disk drives by breaking the data into blocks and writing each block to a separate hard disk drive. Input/Output (I/O) performance is improved by spreading the load across many hard disk drives. Although a level 0 RAID improves I/O performance, it does not provide redundancy because if one hard disk drive fails, all of the data is lost
A level 5 RAID system provides a high level of redundancy by striping both data and parity information across at least three hard disk drives. Data striping is combined with distributed parity to provide a recovery path in case of failure.
A level 6 RAID (RAID-6) system provides an even higher level of redundancy than a level 5 RAID system by allowing recovery from two disk failures. In a level 6 RAID system, two syndromes referred to as the P syndrome and the Q syndrome are generated for the data and stored on hard disk drives in the RAID system.
The P syndrome is generated by computing parity information for the data in a stripe (data blocks (strips), P syndrome block and Q syndrome block). The generation of the Q syndrome requires Galois Field multiplications and is complex in the event of a disk drive failure. Computations in the Galois Field (Finite Field) GF(28) are defined via the reduction polynomial x8+x4+x3+x+1 (that is, 11B (in hexadecimal notation)).
The regeneration scheme to recover data and/or P and/or Q syndromes performed during disk recovery operations requires both Galois Field multiplication and inverse operations.
For example, in a RAID array with n data disks D0, D1, D2, . . . Dn−1, (n≦255), two quantities, namely parity (P), and Reed-Solomon code (Q), are needed in order to recover from the loss of 2 disks.
P and Q are defined by:P=D0+D1+D2+ . . . +Dn−1 Q=g0·D0+g1·D1+g2·D2+ . . . +gn−1·Dn−1 
where g={02} is an element in the Galois Field (Finite Field) GF(28), and ‘+’ and ‘−’ are the operations in this field.
The computational bottleneck associated with the RAID-6 system is the cost of computing Q. The difficulty stems from the fact that traditional processors (Central Processing Units (CPU)s) have poor performance with computations in the Galois Field (Finite Field) GF(28). Thus, typically in order to increase performance, table lookup based algorithms are used. The use of table lookups results in an inherently slow serial process.
Although the following Detailed Description will proceed with reference being made to illustrative embodiments of the claimed subject matter, many alternatives, modifications, and variations thereof will be apparent to those skilled in the art. Accordingly, it is intended that the claimed subject matter be viewed broadly, and be defined only as set forth in the accompanying claims.